package cn.suchan.jianzhi.q28_array;

/**
 * 知识点：数组中出现次数超过一半的数字
 * 题目描述
 * 数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。
 * 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。
 * 由于数字2在数组中出现了5次，超过数组长度的一半，因此输出2。如果不存在则输出0。
 *
 * @author suchan
 * @date 2019/05/30
 */
public class Solution {

    public int MoreThanHalfNum_Solution(int[] array) {
        if (array.length <= 0 || array == null) {
            return 0;
        }
        if (array.length == 1) {
            return array[0];
        }
        int result = 0;
        for (int i = 0; i < array.length - 1; i++) {
            int count = 1;
            for (int j = i + 1; j < array.length; j++) {
                if (array[i] == array[j]) {
                    count++;
                }
            }
            if (count > array.length / 2) {
                result = array[i];
                break;
            }
        }
        return result;
    }

    public static void main(String[] args) {
        int[] arr = {1};
        Solution solution = new Solution();
        System.out.println(solution.MoreThanHalfNum_Solution(arr));
    }
}
